Hello PixieDust!

This sample notebook provides you with an introduction to many features included in PixieDust. You can find more information about PixieDust at https://pixiedust.github.io/pixiedust/. To ensure you are running the latest version of PixieDust uncomment and run the following cell. Do not run this cell if you installed PixieDust locally from source and want to continue to run PixieDust from source.


In [1]:
!pip install --user --upgrade pixiedust


Collecting pixiedust
  Downloading pixiedust-1.0.5.tar.gz (110kB)
    100% |████████████████████████████████| 112kB 824kB/s ta 0:00:01
Requirement already up-to-date: mpld3 in /Users/mbrobergus.ibm.com/anaconda/lib/python2.7/site-packages (from pixiedust)
Requirement already up-to-date: lxml in /Users/mbrobergus.ibm.com/.local/lib/python2.7/site-packages (from pixiedust)
Building wheels for collected packages: pixiedust
  Running setup.py bdist_wheel for pixiedust ... - \ done
  Stored in directory: /Users/mbrobergus.ibm.com/Library/Caches/pip/wheels/64/88/d8/dab16cc6385c872294f763afd88cb35bc3a6e679506b1e5231
Successfully built pixiedust
Installing collected packages: pixiedust
Successfully installed pixiedust-1.0.5

Import PixieDust

Run the following cell to import the PixieDust library. You may need to restart your kernel after importing. Follow the instructions, if any, after running the cell. Note: You must import PixieDust every time you restart your kernel.


In [1]:
import pixiedust


Pixiedust database opened successfully
Pixiedust version upgraded from 1.0.4 to 1.0.5

Enable the Spark Progress Monitor

PixieDust includes a Spark Progress Monitor bar that lets you track the status of your Spark jobs. You can find more info at https://pixiedust.github.io/pixiedust/sparkmonitor.html. Note: there is a known issue with the Spark Progress Monitor on Spark 2.1. Run the following cell to enable the Spark Progress Monitor:


In [2]:
pixiedust.enableJobMonitor();


Succesfully enabled Spark Job Progress Monitor

Example use of the PackageManager

You can use the PackageManager component of Pixiedust to install and uninstall maven packages into your notebook kernel without editing configuration files. This component is essential when you run notebooks from a hosted cloud environment and do not have access to the configuration files. You can find more info at https://pixiedust.github.io/pixiedust/packagemanager.html. Run the following cell to install the GraphFrame package. You may need to restart your kernel after installing new packages. Follow the instructions, if any, after running the cell.


In [3]:
pixiedust.installPackage("graphframes:graphframes:0.1.0-spark1.6")
print("done")


Package already installed: graphframes:graphframes:0.1.0-spark1.6
done

Run the following cell to print out all installed packages:


In [4]:
pixiedust.printAllPackages()


graphframes:graphframes:0.1.0-spark1.6 => /Users/mbrobergus.ibm.com/pixiedust/data/libs/graphframes-0.1.0-spark1.6.jar

Example use of the display() API

PixieDust lets you visualize your data in just a few clicks using the display() API. You can find more info at https://pixiedust.github.io/pixiedust/displayapi.html. The following cell creates a DataFrame and uses the display() API to create a bar chart:


In [5]:
sparkSession = SparkSession.builder.getOrCreate()
d1 = sparkSession.createDataFrame(
[(2010, 'Camping Equipment', 3),
 (2010, 'Golf Equipment', 1),
 (2010, 'Mountaineering Equipment', 1),
 (2010, 'Outdoor Protection', 2),
 (2010, 'Personal Accessories', 2),
 (2011, 'Camping Equipment', 4),
 (2011, 'Golf Equipment', 5),
 (2011, 'Mountaineering Equipment',2),
 (2011, 'Outdoor Protection', 4),
 (2011, 'Personal Accessories', 2),
 (2012, 'Camping Equipment', 5),
 (2012, 'Golf Equipment', 5),
 (2012, 'Mountaineering Equipment', 3),
 (2012, 'Outdoor Protection', 5),
 (2012, 'Personal Accessories', 3),
 (2013, 'Camping Equipment', 8),
 (2013, 'Golf Equipment', 5),
 (2013, 'Mountaineering Equipment', 3),
 (2013, 'Outdoor Protection', 8),
 (2013, 'Personal Accessories', 4)],
["year","zone","unique_customers"])

display(d1)


Hey, there's something awesome here! To see it, open this notebook outside GitHub, in a viewer like Jupyter
Simple Bar Chart
Pan
Box Zoom
Wheel Zoom
Save
Reset
Click the question mark to learn more about Bokeh plot tools.

Example use of the Scala bridge

Data scientists working with Spark may occasionaly need to call out to one of the hundreds of libraries available on spark-packages.org which are written in Scala or Java. PixieDust provides a solution to this problem by letting users directly write and run scala code in its own cell. It also lets variables be shared between Python and Scala and vice-versa. You can find more info at https://pixiedust.github.io/pixiedust/scalabridge.html.

Start by creating a python variable that we'll use in scala:


In [6]:
python_var = "Hello From Python"
python_num = 10


Create scala code that use the python_var and create a new variable that we'll use in Python:


In [7]:
%%scala
println(python_var)
println(python_num+10)
val __scala_var = "Hello From Scala"


Hello From Python
20

Use the __scala_var from python:


In [8]:
print(__scala_var)


Hello From Scala

Sample Data

PixieDust includes a number of sample data sets. You can use these sample data sets to start playing with the display() API and other PixieDust features. You can find more info at https://pixiedust.github.io/pixiedust/loaddata.html. Run the following cell to view the available data sets:


In [9]:
pixiedust.sampleData()


Id Name Topic Publisher
1 Car performance data transportation IBM
2 Sample retail sales transactions, January 2009 Economy & Business IBM Cloud Data Services
3 Total population by country Society IBM Cloud Data Services
4 GoSales Transactions for Naive Bayes Model Leisure IBM
5 Election results by County Society IBM
6 Million dollar home sales in NE Mass late 2016 Economy & Business Redfin.com
7 Boston Crime data, 2-week sample Society City of Boston

Example use of sample data

To use sample data locally run the following cell to install required packages. You may need to restart your kernel after running this cell.


In [10]:
pixiedust.installPackage("com.databricks:spark-csv_2.10:1.5.0")
pixiedust.installPackage("org.apache.commons:commons-csv:0")


Downloading package com.databricks:spark-csv_2.10:1.5.0 to /Users/mbrobergus.ibm.com/pixiedust/data/libs/spark-csv_2.10-1.5.0.jar
Starting download...
Package com.databricks:spark-csv_2.10:1.5.0 downloaded successfully
Please restart Kernel to complete installation of the new package
Successfully added package com.databricks:spark-csv_2.10:1.5.0
Downloading package org.apache.commons:commons-csv:1.4 to /Users/mbrobergus.ibm.com/pixiedust/data/libs/commons-csv-1.4.jar
Starting download...
Package org.apache.commons:commons-csv:1.4 downloaded successfully
Please restart Kernel to complete installation of the new package
Successfully added package org.apache.commons:commons-csv:1.4
Out[10]:
<pixiedust.packageManager.package.Package at 0x11761bf90>

Run the following cell to get the first data set from the list. This will return a DataFrame and assign it to the variable d2:


In [11]:
d2 = pixiedust.sampleData(1)


Downloading 'Car performance data' from https://github.com/ibm-watson-data-lab/open-data/raw/master/cars/cars.csv
Starting download...
Creating pySpark DataFrame for 'Car performance data'. Please wait...
Successfully created pySpark DataFrame for 'Car performance data'

Pass the sample data set (d2) into the display() API:


In [12]:
display(d2)


Hey, there's something awesome here! To see it, open this notebook outside GitHub, in a viewer like Jupyter
type: struct
field:
{'metadata': {}, 'type': 'double', 'name': 'mpg', 'nullable': True}
{'metadata': {}, 'type': 'integer', 'name': 'cylinders', 'nullable': True}
{'metadata': {}, 'type': 'double', 'name': 'engine', 'nullable': True}
{'metadata': {}, 'type': 'integer', 'name': 'horsepower', 'nullable': True}
{'metadata': {}, 'type': 'integer', 'name': 'weight', 'nullable': True}
{'metadata': {}, 'type': 'double', 'name': 'acceleration', 'nullable': True}
{'metadata': {}, 'type': 'integer', 'name': 'year', 'nullable': True}
{'metadata': {}, 'type': 'string', 'name': 'origin', 'nullable': True}
{'metadata': {}, 'type': 'string', 'name': 'name', 'nullable': True}
Showing 100 of 406
mpg
cylinders
engine
horsepower
weight
acceleration
year
origin
name
mpg
cylinders
engine
horsepower
weight
acceleration
year
origin
name
18.0 8 307.0 130 3504 12.0 70 American chevrolet chevelle malibu
15.0 8 350.0 165 3693 11.5 70 American buick skylark 320
18.0 8 318.0 150 3436 11.0 70 American plymouth satellite
16.0 8 304.0 150 3433 12.0 70 American amc rebel sst
17.0 8 302.0 140 3449 10.5 70 American ford torino
15.0 8 429.0 198 4341 10.0 70 American ford galaxie 500
14.0 8 454.0 220 4354 9.0 70 American chevrolet impala
14.0 8 440.0 215 4312 8.5 70 American plymouth fury iii
14.0 8 455.0 225 4425 10.0 70 American pontiac catalina
15.0 8 390.0 190 3850 8.5 70 American amc ambassador dpl
16.0 8 350.0 165 4142 11.5 70 American chevrolet chevelle concours (sw)
16.0 8 351.0 153 4034 11.0 70 American ford torino (sw)
15.0 8 383.0 175 4166 10.5 70 American plymouth satellite (sw)
15.0 8 360.0 175 3850 11.0 70 American amc rebel sst (sw)
15.0 8 383.0 170 3563 10.0 70 American dodge challenger se
14.0 8 340.0 160 3609 8.0 70 American plymouth cuda 340
15.0 8 302.0 140 3353 8.0 70 American ford mustang boss 302
15.0 8 400.0 150 3761 9.5 70 American chevrolet monte carlo
14.0 8 455.0 225 3086 10.0 70 American buick estate wagon (sw)
22.0 6 198.0 95 2833 15.5 70 American plymouth duster
18.0 6 199.0 97 2774 15.5 70 American amc hornet
21.0 6 200.0 85 2587 16.0 70 American ford maverick
21.0 6 199.0 90 2648 15.0 70 American amc gremlin
10.0 8 360.0 215 4615 14.0 70 American ford f250
10.0 8 307.0 200 4376 15.0 70 American chevy c20
11.0 8 318.0 210 4382 13.5 70 American dodge d200
9.0 8 304.0 193 4732 18.5 70 American hi 1200d
28.0 4 140.0 90 2264 15.5 71 American chevrolet vega 2300
25.0 4 98.0 80 2046 19.0 71 American ford pinto
19.0 6 232.0 100 2634 13.0 71 American amc gremlin
16.0 6 225.0 105 3439 15.5 71 American plymouth satellite custom
17.0 6 250.0 100 3329 15.5 71 American chevrolet chevelle malibu
19.0 6 250.0 88 3302 15.5 71 American ford torino 500
18.0 6 232.0 100 3288 15.5 71 American amc matador
14.0 8 350.0 165 4209 12.0 71 American chevrolet impala
14.0 8 400.0 175 4464 11.5 71 American pontiac catalina brougham
14.0 8 351.0 153 4154 13.5 71 American ford galaxie 500
14.0 8 318.0 150 4096 13.0 71 American plymouth fury iii
12.0 8 383.0 180 4955 11.5 71 American dodge monaco (sw)
13.0 8 400.0 170 4746 12.0 71 American ford country squire (sw)
13.0 8 400.0 175 5140 12.0 71 American pontiac safari (sw)
18.0 6 258.0 110 2962 13.5 71 American amc hornet sportabout (sw)
22.0 4 140.0 72 2408 19.0 71 American chevrolet vega (sw)
19.0 6 250.0 100 3282 15.0 71 American pontiac firebird
18.0 6 250.0 88 3139 14.5 71 American ford mustang
23.0 4 122.0 86 2220 14.0 71 American mercury capri 2000
26.0 4 91.0 70 1955 20.5 71 American plymouth cricket
25.0 4 97.5 80 2126 17.0 72 American dodge colt hardtop
20.0 4 140.0 90 2408 19.5 72 American chevrolet vega
21.0 4 122.0 86 2226 16.5 72 American ford pinto runabout
13.0 8 350.0 165 4274 12.0 72 American chevrolet impala
14.0 8 400.0 175 4385 12.0 72 American pontiac catalina
15.0 8 318.0 150 4135 13.5 72 American plymouth fury iii
14.0 8 351.0 153 4129 13.0 72 American ford galaxie 500
17.0 8 304.0 150 3672 11.5 72 American amc ambassador sst
11.0 8 429.0 208 4633 11.0 72 American mercury marquis
13.0 8 350.0 155 4502 13.5 72 American buick lesabre custom
12.0 8 350.0 160 4456 13.5 72 American oldsmobile delta 88 royale
13.0 8 400.0 190 4422 12.5 72 American chrysler newport royal
15.0 8 304.0 150 3892 12.5 72 American amc matador (sw)
13.0 8 307.0 130 4098 14.0 72 American chevrolet chevelle concours (sw)
13.0 8 302.0 140 4294 16.0 72 American ford gran torino (sw)
14.0 8 318.0 150 4077 14.0 72 American plymouth satellite custom (sw)
22.0 4 122.0 86 2395 16.0 72 American ford pinto (sw)
28.0 4 98.0 80 2164 15.0 72 American dodge colt (sw)
13.0 8 350.0 175 4100 13.0 73 American buick century 350
14.0 8 304.0 150 3672 11.5 73 American amc matador
13.0 8 350.0 145 3988 13.0 73 American chevrolet malibu
14.0 8 302.0 137 4042 14.5 73 American ford gran torino
15.0 8 318.0 150 3777 12.5 73 American dodge coronet custom
12.0 8 429.0 198 4952 11.5 73 American mercury marquis brougham
13.0 8 400.0 150 4464 12.0 73 American chevrolet caprice classic
13.0 8 351.0 158 4363 13.0 73 American ford ltd
14.0 8 318.0 150 4237 14.5 73 American plymouth fury gran sedan
13.0 8 440.0 215 4735 11.0 73 American chrysler new yorker brougham
12.0 8 455.0 225 4951 11.0 73 American buick electra 225 custom
13.0 8 360.0 175 3821 11.0 73 American amc ambassador brougham
18.0 6 225.0 105 3121 16.5 73 American plymouth valiant
16.0 6 250.0 100 3278 18.0 73 American chevrolet nova custom
18.0 6 232.0 100 2945 16.0 73 American amc hornet
18.0 6 250.0 88 3021 16.5 73 American ford maverick
23.0 6 198.0 95 2904 16.0 73 American plymouth duster
11.0 8 400.0 150 4997 14.0 73 American chevrolet impala
12.0 8 400.0 167 4906 12.5 73 American ford country
13.0 8 360.0 170 4654 13.0 73 American plymouth custom suburb
12.0 8 350.0 180 4499 12.5 73 American oldsmobile vista cruiser
18.0 6 232.0 100 2789 15.0 73 American amc gremlin
21.0 4 140.0 72 2401 19.5 73 American chevrolet vega
19.0 4 122.0 85 2310 18.5 73 American ford pinto
21.0 6 155.0 107 2472 14.0 73 American mercury capri v6
15.0 8 350.0 145 4082 13.0 73 American chevrolet monte carlo s
16.0 8 400.0 230 4278 9.5 73 American pontiac grand prix
15.0 8 318.0 150 3399 11.0 73 American dodge dart custom
11.0 8 350.0 180 3664 11.0 73 American oldsmobile omega
20.0 6 198.0 95 3102 16.5 74 American plymouth duster
21.0 6 200.0 160 2875 17.0 74 American ford maverick
19.0 6 232.0 100 2901 16.0 74 American amc hornet
15.0 6 250.0 100 3336 17.0 74 American chevrolet nova
26.0 4 122.0 80 2451 16.5 74 American ford pinto
25.0 4 140.0 75 2542 17.0 74 American chevrolet vega

You can also download data from a CSV file into a DataFrame which you can use with the display() API:


In [13]:
d3 = pixiedust.sampleData("https://openobjectstore.mybluemix.net/misc/milliondollarhomes.csv")


Downloading 'https://openobjectstore.mybluemix.net/misc/milliondollarhomes.csv' from https://openobjectstore.mybluemix.net/misc/milliondollarhomes.csv
Starting download...
Creating pySpark DataFrame for 'https://openobjectstore.mybluemix.net/misc/milliondollarhomes.csv'. Please wait...
Successfully created pySpark DataFrame for 'https://openobjectstore.mybluemix.net/misc/milliondollarhomes.csv'

PixieDust Log


In [14]:
% pixiedustLog -l debug


2017-06-02 10:27:21,882 - pixiedust.utils.storage - INFO - Change in version detected: 1.0.4 -> 1.0.5.
2017-06-02 10:27:28,995 - pixiedust.utils.scalaBridge.PixiedustScalaMagics - DEBUG - Calling scala compiler with command: /Users/mbrobergus.ibm.com/pixiedust/bin/scala/scala-2.11.8/bin/scalac -classpath /Users/mbrobergus.ibm.com/pixiedust/data/libs/graphframes-0.1.0-spark1.6.jar:/Users/mbrobergus.ibm.com/pixiedust/data/libs/pixiedust.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/conf/:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/activation-1.1.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/antlr-2.7.7.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/antlr-runtime-3.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/antlr4-runtime-4.5.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/aopalliance-1.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/aopalliance-repackaged-2.4.0-b34.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/apache-log4j-extras-1.2.17.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/apacheds-i18n-2.0.0-M15.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/apacheds-kerberos-codec-2.0.0-M15.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/api-asn1-api-1.0.0-M20.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/api-util-1.0.0-M20.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/arpack_combined_all-0.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/avro-1.7.7.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/avro-ipc-1.7.7.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/avro-mapred-1.7.7-hadoop2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/base64-2.3.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/bcprov-jdk15on-1.51.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/bonecp-0.8.0.RELEASE.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/breeze-macros_2.11-0.11.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/breeze_2.11-0.11.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/calcite-avatica-1.2.0-incubating.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/calcite-core-1.2.0-incubating.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/calcite-linq4j-1.2.0-incubating.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/chill-java-0.8.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/chill_2.11-0.8.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-beanutils-1.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-beanutils-core-1.8.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-cli-1.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-codec-1.10.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-collections-3.2.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-compiler-2.7.6.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-compress-1.4.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-configuration-1.6.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-dbcp-1.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-digester-1.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-httpclient-3.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-io-2.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-lang-2.6.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-lang3-3.3.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-logging-1.1.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-math3-3.4.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-net-2.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-pool-1.5.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/compress-lzf-1.0.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/core-1.1.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/curator-client-2.6.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/curator-framework-2.6.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/curator-recipes-2.6.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/datanucleus-api-jdo-3.2.6.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/datanucleus-core-3.2.10.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/datanucleus-rdbms-3.2.9.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/derby-10.12.1.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/eigenbase-properties-1.1.5.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/gson-2.2.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/guava-14.0.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/guice-3.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/guice-servlet-3.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-annotations-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-auth-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-client-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-common-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-hdfs-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-mapreduce-client-app-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-mapreduce-client-common-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-mapreduce-client-core-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-mapreduce-client-jobclient-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-mapreduce-client-shuffle-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-yarn-api-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-yarn-client-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-yarn-common-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-yarn-server-common-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-yarn-server-web-proxy-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hive-beeline-1.2.1.spark2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hive-cli-1.2.1.spark2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hive-exec-1.2.1.spark2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hive-jdbc-1.2.1.spark2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hive-metastore-1.2.1.spark2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hk2-api-2.4.0-b34.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hk2-locator-2.4.0-b34.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hk2-utils-2.4.0-b34.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/htrace-core-3.1.0-incubating.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/httpclient-4.5.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/httpcore-4.4.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/ivy-2.4.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-annotations-2.6.5.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-core-2.6.5.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-core-asl-1.9.13.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-databind-2.6.5.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-jaxrs-1.9.13.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-mapper-asl-1.9.13.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-module-paranamer-2.6.5.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-module-scala_2.11-2.6.5.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-xc-1.9.13.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/janino-2.7.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/java-xmlbuilder-1.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/JavaEWAH-0.3.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/javassist-3.18.1-GA.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/javax.annotation-api-1.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/javax.inject-1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/javax.inject-2.4.0-b34.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/javax.servlet-api-3.1.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/javax.ws.rs-api-2.0.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/javolution-5.5.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jaxb-api-2.2.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jcl-over-slf4j-1.7.16.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jdo-api-3.0.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jersey-client-2.22.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jersey-common-2.22.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jersey-container-servlet-2.22.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jersey-container-servlet-core-2.22.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jersey-guava-2.22.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jersey-media-jaxb-2.22.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jersey-server-2.22.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jets3t-0.9.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jetty-6.1.26.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jetty-util-6.1.26.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jline-2.12.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/joda-time-2.9.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jodd-core-3.5.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jpam-1.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/json-20090211.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/json4s-ast_2.11-3.2.11.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/json4s-core_2.11-3.2.11.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/json4s-jackson_2.11-3.2.11.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jsp-api-2.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jsr305-1.3.9.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jta-1.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jtransforms-2.4.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jul-to-slf4j-1.7.16.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/kryo-shaded-3.0.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/leveldbjni-all-1.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/libfb303-0.9.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/libthrift-0.9.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/log4j-1.2.17.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/lz4-1.3.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/mail-1.4.7.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/mesos-0.21.1-shaded-protobuf.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/metrics-core-3.1.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/metrics-graphite-3.1.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/metrics-json-3.1.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/metrics-jvm-3.1.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/minlog-1.3.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/mx4j-3.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/netty-3.8.0.Final.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/netty-all-4.0.29.Final.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/objenesis-2.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/opencsv-2.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/oro-2.0.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/osgi-resource-locator-1.0.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/paranamer-2.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-column-1.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-common-1.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-encoding-1.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-format-2.3.0-incubating.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-generator-1.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-hadoop-1.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-hadoop-bundle-1.6.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-jackson-1.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/pmml-model-1.2.15.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/pmml-schema-1.2.15.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/protobuf-java-2.5.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/py4j-0.10.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/pyrolite-4.13.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/RoaringBitmap-0.5.11.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/scala-compiler-2.11.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/scala-library-2.11.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/scala-parser-combinators_2.11-1.0.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/scala-reflect-2.11.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/scala-xml_2.11-1.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/scalap-2.11.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/slf4j-api-1.7.16.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/slf4j-log4j12-1.7.16.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/snappy-0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/snappy-java-1.1.2.6.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-catalyst_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-core_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-graphx_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-hive-thriftserver_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-hive_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-launcher_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-mllib-local_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-mllib_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-network-common_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-network-shuffle_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-repl_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-sketch_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-sql_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-streaming_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-tags_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-unsafe_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-yarn_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spire-macros_2.11-0.7.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spire_2.11-0.7.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/ST4-4.0.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/stax-api-1.0-2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/stax-api-1.0.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/stream-2.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/stringtemplate-3.2.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/super-csv-2.2.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/univocity-parsers-2.1.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/validation-api-1.1.0.Final.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/xbean-asm5-shaded-4.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/xercesImpl-2.9.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/xmlenc-0.52.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/xz-1.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/zookeeper-3.4.6.jar pixiedustRunner.scala
2017-06-02 10:27:32,661 - pixiedust.utils.javaBridge - DEBUG - Calling callMethod: methodName: init
2017-06-02 10:27:32,666 - pixiedust.utils.javaBridge - DEBUG - Found method with Name init
2017-06-02 10:27:32,669 - pixiedust.utils.javaBridge - DEBUG - Calling callMethod: methodName: runCell
2017-06-02 10:27:32,672 - pixiedust.utils.javaBridge - DEBUG - Found method with Name runCell
2017-06-02 10:27:48,663 - pixiedust.display - DEBUG - Creating a new display handler with options {}: <pixiedust.display.display.CellHandshakeMeta object at 0x117444250>
2017-06-02 10:27:48,760 - pixiedust.display.display.Display - DEBUG - pixiedust code: if (typeof pixiedust == "undefined"){
    var s=document.getElementsByTagName('script')[0];
    var g=document.createElement( 'script'  );
    g.type= 'text/javascript';
    g.defer=false; 
    g.async=false;
    var code = "var pixiedust = (function(){\n"+
"    return {\n"+
"        \n"+
"        executeDisplay:function(pd_controls, user_controls){\n"+
"            pd_controls = pd_controls || {};\n"+
"            user_controls = user_controls || {\"options\":{}};\n"+
"            var options = $.extend({}, pd_controls.options || {}, user_controls.options || {} );\n"+
"            function onDisplayDone(){\n"+
"                if (user_controls.onDisplayDone){\n"+
"                    user_controls.onDisplayDone();\n"+
"                }\n"+
"            }\n"+
"            var pd_prefix = pd_controls.prefix;\n"+
"            var $targetDivId = user_controls.targetDivId;\n"+
"            !function() {\n"+
"    function getTargetNode(){\n"+
"        return $('#' + ($targetDivId || (\"wrapperHTML\"+ pd_prefix)));\n"+
"    }\n"+
"    var cellId = options.cell_id || \"\";\n"+
"    var curCell=IPython.notebook.get_cells().filter(function(cell){\n"+
"        return cell.cell_id==cellId;\n"+
"    });\n"+
"    curCell=curCell.length>0?curCell[0]:null;\n"+
"    console.log(\"curCell\",curCell);\n"+
"    var startWallToWall;\n"+
"        var callbacks = {\n"+
"        shell : {\n"+
"            reply : function(){\n"+
"                if ( !callbacks.response ){\n"+
"                    getTargetNode().html(\"\")\n"+
"                    if (user_controls.onDisplayDone){\n"+
"                        user_controls.onDisplayDone();\n"+
"                    }\n"+
"                }\n"+
"            },\n"+
"            payload : {\n"+
"                set_next_input : function(payload){\n"+
"                    if (curCell){\n"+
"                        curCell._handle_set_next_input(payload);\n"+
"                    }\n"+
"                }\n"+
"            }\n"+
"        },\n"+
"        iopub:{\n"+
"            output:function(msg){\n"+
"                callbacks.response = true;\n"+
"                console.log(\"msg\", msg);\n"+
"                if (cellId == \"\"){\n"+
"                    if (curCell){\n"+
"                        curCell.output_area.handle_output.apply(curCell.output_area, arguments);\n"+
"                        curCell.output_area.outputs=[];\n"+
"                    }else{\n"+
"                        console.log(\"Could not find current cell\");\n"+
"                    }\n"+
"                    return;\n"+
"                }\n"+
"                var msg_type=msg.header.msg_type;\n"+
"                var content = msg.content;\n"+
"                if(msg_type===\"stream\"){\n"+
"                    if (user_controls.onSuccess){\n"+
"                        user_controls.onSuccess(content.text);\n"+
"                    }else{\n"+
"                        getTargetNode().html(content.text);\n"+
"                    }\n"+
"                }else if (msg_type===\"display_data\" || msg_type===\"execute_result\"){\n"+
"                    var html=null;\n"+
"                    if (!!content.data[\"text/html\"]){\n"+
"                        html=content.data[\"text/html\"];\n"+
"                    }else if (!!content.data[\"image/png\"]){\n"+
"                        html=html||\"\";\n"+
"                        html+=\"<img src='data:image/png;base64,\" +content.data[\"image/png\"]+\"'></img>\";\n"+
"                    }\n"+
"                                                    \n"+
"                    if (!!content.data[\"application/javascript\"]){\n"+
"                        try {\n"+
"                            eval(content.data[\"application/javascript\"]);\n"+
"                        } catch(err) {\n"+
"                            curCell.output_area.handle_output.apply(curCell.output_area, arguments);\n"+
"                        }                        \n"+
"                        return;\n"+
"                    }\n"+
"                    \n"+
"                    if (html){\n"+
"                        try{\n"+
"                            if (user_controls.onSuccess){\n"+
"                                user_controls.onSuccess(html);\n"+
"                            }else{\n"+
"                                getTargetNode().html(html);\n"+
"                            }\n"+
"                        }catch(e){\n"+
"                            console.log(\"Invalid html output\", e, html);\n"+
"                            getTargetNode().html( \"Invalid html output: \" + e.message + \"<pre>\" \n"+
"                                + html.replace(/>/g,'&gt;').replace(/</g,'&lt;').replace(/\"/g,'&quot;') + \"<pre>\");\n"+
"                        }\n"+
"\n"+
"                        if(curCell&&curCell.output_area&&curCell.output_area.outputs){\n"+
"                            setTimeout(function(){\n"+
"                                var data = JSON.parse(JSON.stringify(content.data));\n"+
"                                if(!!data[\"text/html\"])data[\"text/html\"]=html;\n"+
"                                function savedData(data){\n"+
"                                    \n"+
"                                    var markup='<style type=\"text/css\">.pd_warning{display:none;}</style>';\n"+
"                                    markup+='<div class=\"pd_warning\"><em>Hey, there\\'s something awesome here! To see it, open this notebook outside GitHub, in a viewer like Jupyter</em></div>';\n"+
"                                    nodes = $.parseHTML(data[\"text/html\"], null, true);\n"+
"                                    var s = $(nodes).wrap(\"<div>\").parent().find(\".pd_save\").not(\".pd_save .pd_save\")\n"+
"                                    s.each(function(){\n"+
"                                        var found = false;\n"+
"                                        if ( $(this).attr(\"id\") ){\n"+
"                                            var n = $(\"#\" + $(this).attr(\"id\"));\n"+
"                                            if (n.length>0){\n"+
"                                                found=true;\n"+
"                                                n.each(function(){\n"+
"                                                    $(this).addClass(\"is-viewer-good\");\n"+
"                                                });\n"+
"                                                markup+=n.wrap(\"<div>\").parent().html();\n"+
"                                            }\n"+
"                                        }else{\n"+
"                                            $(this).addClass(\"is-viewer-good\");\n"+
"                                        }\n"+
"                                        if (!found){\n"+
"                                            markup+=$(this).parent().html();\n"+
"                                        }\n"+
"                                    });\n"+
"                                    data[\"text/html\"] = markup;\n"+
"                                    return data;\n"+
"                                }\n"+
"                                curCell.output_area.outputs.push({\"data\": savedData(data),\"metadata\":content.metadata,\"output_type\":msg_type});\n"+
"                            },2000);\n"+
"                        }\n"+
"                    }\n"+
"                }else if (msg_type === \"error\") {\n"+
"                    require(['base/js/utils'], function(utils) {\n"+
"                        var tb = content.traceback;\n"+
"                        console.log(\"tb\",tb);\n"+
"                        if (tb && tb.length>0){\n"+
"                            var data = tb.reduce(function(res, frame){return res+frame+'\\\\n';},\"\");\n"+
"                            console.log(\"data\",data);\n"+
"                            data = utils.fixConsole(data);\n"+
"                            data = utils.fixCarriageReturn(data);\n"+
"                            data = utils.autoLinkUrls(data);\n"+
"                            if (user_controls.onError){\n"+
"                                user_controls.onError(data);\n"+
"                            }else{\n"+
"                                getTargetNode().html(\"<pre>\" + data +\"</pre>\");\n"+
"                            }\n"+
"                        }\n"+
"                    });\n"+
"                }else{\n"+
"                    callbacks.response = false;\n"+
"                }\n"+
"                if (user_controls.onDisplayDone){\n"+
"                    user_controls.onDisplayDone();\n"+
"                }\n"+
"            }\n"+
"        }\n"+
"    }\n"+
"    \n"+
"    if (IPython && IPython.notebook && IPython.notebook.session && IPython.notebook.session.kernel){\n"+
"        var command = user_controls.script || pd_controls.command.replace(\"cellId\",cellId);\n"+
"        if ( !user_controls.script){\n"+
"            function addOptions(options, override=true){\n"+
"                function getStringRep(v) {\n"+
"                    return \"'\" + v + \"'\";\n"+
"                }\n"+
"                for (var key in (options||{})){\n"+
"                    var value = options[key];\n"+
"                    var hasValue = value != null && typeof value !== 'undefined' && value !== '';\n"+
"                    var replaceValue = hasValue ? (key+\"=\" + getStringRep(value) ) : \"\";\n"+
"                    var pattern = (hasValue?\"\":\",\")+\"\\\\s*\" + key + \"\\\\s*=\\\\s*'(\\\\\\\\'|[^'])*'\";\n"+
"                    var rpattern=new RegExp(pattern);\n"+
"                    var n = command.search(rpattern);\n"+
"                    if ( n >= 0 ){\n"+
"                        if (override){\n"+
"                            command = command.replace(rpattern, replaceValue);\n"+
"                        }\n"+
"                    }else if (hasValue){\n"+
"                        var n = command.lastIndexOf(\")\");\n"+
"                        command = [command.slice(0, n), (command[n-1]==\"(\"? \"\":\",\") + replaceValue, command.slice(n)].join('')\n"+
"                    }        \n"+
"                }\n"+
"            }\n"+
"            if(typeof cellMetadata != \"undefined\" && cellMetadata.displayParams){\n"+
"                addOptions(cellMetadata.displayParams);\n"+
"                addOptions({\"showchrome\":\"true\"});\n"+
"            }else if (curCell && curCell._metadata.pixiedust ){\n"+
"                addOptions(curCell._metadata.pixiedust.displayParams || {}, pd_controls.useCellMetadata);\n"+
"            }\n"+
"            addOptions(user_controls.options||{});\n"+
"            var pattern = \"\\\\w*\\\\s*=\\\\s*'(\\\\\\\\'|[^'])*'\";\n"+
"            var rpattern=new RegExp(pattern,\"g\");\n"+
"            var n = command.match(rpattern);\n"+
"            \n"+
"            var org_params = {}\n"+
"            for (var i=0; i<n.length;i++){\n"+
"                var parts = n[i].split(\"=\")\n"+
"                if (parts[0].trim() == \"org_params\"){\n"+
"                    var value = parts[1].trim()\n"+
"                    var values = value.substring(1,value.length-1).split(\",\");\n"+
"                    for (var p in values){\n"+
"                        org_params[values[p].trim()] = true;\n"+
"                    }\n"+
"                    break;\n"+
"                }\n"+
"            }\n"+
"            var displayParams={}\n"+
"            for (var i = 0; i < n.length; i++){\n"+
"                var parts=n[i].split(\"=\");\n"+
"                var key = parts[0].trim();\n"+
"                var value = parts[1].trim()\n"+
"                if (!key.startsWith(\"nostore_\") && key != \"showchrome\" && key != \"prefix\" && key != \"cell_id\" && key != \"org_params\" && !!!org_params[key]){\n"+
"                    displayParams[key] = value.substring(1,value.length-1);\n"+
"                }\n"+
"            }\n"+
"\n"+
"            \n"+
"        }\n"+
"        if(curCell&&curCell.output_area){\n"+
"            if ( !user_controls.nostoreMedatadata ){\n"+
"                curCell._metadata.pixiedust = curCell._metadata.pixiedust || {}\n"+
"                curCell._metadata.pixiedust.displayParams=displayParams\n"+
"                curCell.output_area.outputs=[];\n"+
"                var old_msg_id = curCell.last_msg_id;\n"+
"                if (old_msg_id) {\n"+
"                    curCell.kernel.clear_callbacks_for_msg(old_msg_id);\n"+
"                }\n"+
"            }\n"+
"        }else{\n"+
"            console.log(\"couldn't find the cell\");\n"+
"        }\n"+
"        $('#wrapperJS' + pd_prefix).html(\"\")\n"+
"        if (!getTargetNode().hasClass( \"no_loading_msg\" )){\n"+
"            getTargetNode().html(\n"+
"                '<div style=\"width:100px;height:60px;left:47%;position:relative\">'+\n"+
"                    '<i class=\"fa fa-circle-o-notch fa-spin\" style=\"font-size:48px\"></i>'+\n"+
"                '</div>'+\n"+
"                '<div style=\"text-align:center\">' +\n"+
"                    (getTargetNode().attr(\"pd_loading_msg\") || \"Loading your data. Please wait...\") +\n"+
"                '</div>'\n"+
"            );\n"+
"        }\n"+
"        console.log(\"Running command2\",command);\n"+
"        IPython.notebook.session.kernel.execute(command, callbacks, {silent:true,store_history:false,stop_on_error:true});\n"+
"    }\n"+
"}()\n"+
"        },\n"+
"        executeInDialog:function(pd_controls, user_controls){\n"+
"            pd_controls = pd_controls || {};\n"+
"            user_controls = user_controls || {\"options\":{}};\n"+
"            var displayOptions = $.extend({}, pd_controls.options || {}, user_controls.options || {} );\n"+
"            var global={};\n"+
"            require(['base/js/dialog'],function(dialog){\n"+
"                var modal = dialog.modal;\n"+
"                var attr_pd_ctrl = JSON.stringify(pd_controls).trim()\n"+
"                    .replace(/&/g, '&amp;')\n"+
"                    .replace(/'/g, '&apos;')\n"+
"                    .replace(/\"/g, '&quot;')\n"+
"                    .replace(/</g, '&lt;')\n"+
"                    .replace(/>/g, '&gt;');\n"+
"                var dialogRoot = \"dialog\" + pd_controls.prefix + \"root\";\n"+
"                var options = {\n"+
"                    title: \"Pixiedust: \" + (displayOptions.title || \"Dialog\"),\n"+
"                    body: '<div id=\"' + dialogRoot + '\" pixiedust=\"' + attr_pd_ctrl + '\" class=\"pixiedust\"></div>',\n"+
"                    sanitize:false,\n"+
"                    notebook: IPython.notebook,\n"+
"                    keyboard_manager: IPython.notebook.keyboard_manager,\n"+
"                    maximize_modal: (displayOptions.maximize === \"true\"),\n"+
"                    buttons: {\n"+
"                        OK: {\n"+
"                            class : \"btn-primary btn-ok\",\n"+
"                            click: function() {\n"+
"                                var dlg = $(\"#\" + dialogRoot + \" > pd_dialog\");\n"+
"                                try{\n"+
"                                    return new Function('global', 'modal_obj', dlg.find(\"> pd_ok\").text().trim())(global, modal_obj);\n"+
"                                }catch(e){\n"+
"                                    console.error(e);\n"+
"                                    return false;\n"+
"                                }\n"+
"                            }\n"+
"                        },\n"+
"                        Cancel: {\n"+
"                            class : \"btn-cancel\",\n"+
"                            click: function(){\n"+
"                            }\n"+
"                        }\n"+
"                    }\n"+
"                };\n"+
"\n"+
"                function resizeDialog() {\n"+
"                    global.modalBodyStyle = $('.pixiedust .modal-body').attr('style');\n"+
"                    global.modalFooterStyle = $('.pixiedust .modal-footer').attr('style');\n"+
"                    $('.pixiedust .modal-body').attr('style', global.modalBodyStyle ? global.modalBodyStyle + ';padding:5px 20px !important;' : 'padding:5px 20px !important;');\n"+
"                    $('.pixiedust .modal-footer').attr('style', 'display:none !important;');\n"+
"                };\n"+
"\n"+
"                function resetDialog() {\n"+
"                    if (global.modalBodyStyle) {\n"+
"                        $('.pixiedust .modal-body').attr('style', global.modalBodyStyle);\n"+
"                    } else {\n"+
"                        $('.pixiedust .modal-body').removeAttr('style');\n"+
"                    }\n"+
"                    if (global.modalFooterStyle) {\n"+
"                        $('.pixiedust .modal-footer').attr('style', global.modalFooterStyle);\n"+
"                    } else {\n"+
"                        $('.pixiedust .modal-footer').removeAttr('style');\n"+
"                    }\n"+
"                };\n"+
"\n"+
"                var modal_obj = modal(options);\n"+
"                modal_obj.addClass('pixiedust pixiedust-app');\n"+
"                if (options.maximize_modal) {\n"+
"                    modal_obj.addClass('pixiedust pixiedust-app pixiedust-maximize');\n"+
"                }\n"+
"                modal_obj.on('shown.bs.modal', function(){\n"+
"                    resizeDialog();\n"+
"                    var isFF = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n"+
"                    if( isFF && options.keyboard_manager){\n"+
"                        \n"+
"                        var KeyboardManager = require('notebook/js/keyboardmanager').KeyboardManager;\n"+
"                        global.KMEnableProto = KeyboardManager.prototype.enable;\n"+
"                        KeyboardManager.prototype.enable = function () {\n"+
"                            this.enabled = false;\n"+
"                        };\n"+
"                    }\n"+
"                    IPython.keyboard_manager.register_events(modal_obj);\n"+
"                    user_controls.options.targetDivId = user_controls.targetDivId = dialogRoot;\n"+
"                    if ( user_controls.options.dialog == 'true'){\n"+
"                        user_controls.onDisplayDone = function(){\n"+
"                            var dlg = $(\"#\" + dialogRoot + \" > pd_dialog\")\n"+
"                            try{\n"+
"                                new Function('global', 'modal_obj', dlg.find(\"> pd_onload\").text().trim())(global, modal_obj);\n"+
"                            }catch(e){\n"+
"                                console.error(e);\n"+
"                            }\n"+
"                        }\n"+
"                    }\n"+
"                    pixiedust.dialogRoot = dialogRoot;\n"+
"                    pixiedust.executeDisplay(pd_controls, user_controls);\n"+
"                });\n"+
"                modal_obj.on(\"hidden.bs.modal\", function () {\n"+
"                    resetDialog();\n"+
"                    if ( global.KMEnableProto ){\n"+
"                        var KeyboardManager = require('notebook/js/keyboardmanager').KeyboardManager;\n"+
"                        KeyboardManager.prototype.enable = global.KMEnableProto;\n"+
"                        delete global.KMEnableProto;\n"+
"                    }\n"+
"                    pixiedust.dialogRoot = null;\n"+
"                });\n"+
"            })\n"+
"        }\n"+
"    }\n"+
"})();\n"+
"\n"+
"function resolveScriptMacros(script){\n"+
"    script = script && script.replace(/\\$val\\(\\\"?(\\w*)\\\"?\\)/g, function(a,b){\n"+
"        var v = $(\"#\" + b ).val();\n"+
"        if (!v && window[b] && typeof window[b] === \"function\"){\n"+
"            v = window[b]();\n"+
"        }\n"+
"        if (!v && pixiedust[b] && typeof pixiedust[b] === \"function\"){\n"+
"            v = pixiedust[b]();\n"+
"        }\n"+
"        if (!v){\n"+
"            console.log(\"Warning: Unable to resolve value for element \", b);\n"+
"            return a;\n"+
"        }\n"+
"        return v.split('\"').join('&quot;').split('\\n').join('\\\\n');\n"+
"    });\n"+
"    return script;\n"+
"}\n"+
"\n"+
"function getParentScript(element){\n"+
"    var scripts = [];\n"+
"    \n"+
"    $(element).parents(\"[pd_script]\").each(function(){\n"+
"        scripts.unshift(this.getAttribute(\"pd_script\"));\n"+
"    });\n"+
"\n"+
"    \n"+
"    var script = \"\";\n"+
"    $.each( scripts, function(index, value){\n"+
"        if (value){\n"+
"            script += \"\\n\" + value;\n"+
"        }\n"+
"    });\n"+
"    return script;\n"+
"}\n"+
"\n"+
"function preRun(element){\n"+
"    var preRunCode = null;\n"+
"    $(element).find(\"> pd_script\").each(function(){\n"+
"        var type = this.getAttribute(\"type\");\n"+
"        if (type==\"preRun\"){\n"+
"            preRunCode = $(this).text();\n"+
"        }\n"+
"    });\n"+
"    if (!preRunCode ){\n"+
"        return true;\n"+
"    }\n"+
"    return new Function(preRunCode.trim())();\n"+
"}\n"+
"\n"+
"function addOptions(command, options, override=true){\n"+
"    function getStringRep(v) {\n"+
"        return \"'\" + v + \"'\";\n"+
"    }\n"+
"    for (var key in (options||{})){\n"+
"        var value = options[key];\n"+
"        var hasValue = value != null && typeof value !== 'undefined' && value !== '';\n"+
"        var replaceValue = hasValue ? (key+\"=\" + getStringRep(value) ) : \"\";\n"+
"        var pattern = (hasValue?\"\":\",\")+\"\\\\s*\" + key + \"\\\\s*=\\\\s*'(\\\\\\\\'|[^'])*'\";\n"+
"        var rpattern=new RegExp(pattern);\n"+
"        var n = command.search(rpattern);\n"+
"        if ( n >= 0 ){\n"+
"            if (override){\n"+
"                command = command.replace(rpattern, replaceValue);\n"+
"            }\n"+
"        }else if (hasValue){\n"+
"            var n = command.lastIndexOf(\")\");\n"+
"            command = [command.slice(0, n), (command[n-1]==\"(\"? \"\":\",\") + replaceValue, command.slice(n)].join('')\n"+
"        }        \n"+
"    }\n"+
"    return command;\n"+
"}\n"+
"\n"+
"function readExecInfo(pd_controls, element){\n"+
"    var execInfo = {}\n"+
"    execInfo.options = {}\n"+
"    var hasOptions = false;\n"+
"    $.each( element.attributes, function(){\n"+
"        if (this.name.startsWith(\"option_\")){\n"+
"            hasOptions = true;\n"+
"            execInfo.options[this.name.replace(\"option_\", \"\")] = this.value || null;\n"+
"        }\n"+
"    });\n"+
"    var pd_options = resolveScriptMacros(element.getAttribute(\"pd_options\"));\n"+
"    if (pd_options){\n"+
"        var parts = pd_options.split(\";\");\n"+
"        $.each( parts, function(){\n"+
"            var index = this.indexOf(\"=\");\n"+
"            if ( index > 1){\n"+
"                hasOptions = true;\n"+
"                execInfo.options[this.substring(0, index)] = this.substring(index+1);\n"+
"            }\n"+
"        });\n"+
"    }\n"+
"    execInfo.options.nostore_figureOnly = true;\n"+
"    execInfo.options.targetDivId = execInfo.targetDivId = element.getAttribute(\"pd_target\");\n"+
"    if (execInfo.options.targetDivId){\n"+
"        execInfo.options.no_margin=true;\n"+
"    }\n"+
"\n"+
"    execInfo.options.widget = element.getAttribute(\"pd_widget\");\n"+
"\n"+
"        var parentStyles = [];\n"+
"    var hiddenBlockStyle = 'visibility: hidden !important; display: block !important;';\n"+
"    var tDiv = $(\"#\" + execInfo.targetDivId);\n"+
"    var tDivParents = tDiv.parents().addBack().filter(':hidden');\n"+
"    tDivParents.each(function() {\n"+
"        var currentStyle = $(this).attr('style');\n"+
"        parentStyles.push(currentStyle);\n"+
"        $(this).attr('style', currentStyle ? currentStyle + ';' + hiddenBlockStyle : hiddenBlockStyle);\n"+
"    });\n"+
"\n"+
"        w = tDiv.width()\n"+
"    if (w) {\n"+
"        execInfo.options.nostore_cw= w;\n"+
"    }\n"+
"    if ($(element).parents(\".modal-dialog\").length > 0 ) {\n"+
"        h = tDiv.height()\n"+
"        if (h) {\n"+
"            execInfo.options.nostore_ch = h-10;\n"+
"        }\n"+
"    }\n"+
"\n"+
"        tDivParents.each(function(i) {\n"+
"        if (parentStyles[i] === undefined) {\n"+
"            $(this).removeAttr('style');\n"+
"        } else {\n"+
"            $(this).attr('style', parentStyles[i]);\n"+
"        }\n"+
"    });\n"+
"\n"+
"    execInfo.script = element.getAttribute(\"pd_script\");\n"+
"    if (!execInfo.script){\n"+
"        $(element).find(\"> pd_script\").each(function(){\n"+
"            var type = this.getAttribute(\"type\");\n"+
"            if (!type || type==\"python\"){\n"+
"                execInfo.script = $(this).text();\n"+
"            }\n"+
"        })\n"+
"    }\n"+
"\n"+
"    execInfo.refresh = element.hasAttribute(\"pd_refresh\");\n"+
"    execInfo.norefresh = element.hasAttribute(\"pd_norefresh\");\n"+
"    execInfo.entity = element.hasAttribute(\"pd_entity\") ? element.getAttribute(\"pd_entity\") || \"pixieapp_entity\" : null;\n"+
"\n"+
"    function applyEntity(c, e, doptions){\n"+
"        if (!e){\n"+
"            return addOptions(c, doptions);\n"+
"        }\n"+
"        c = c.replace(/\\((\\w*),/, \"($1.\" + e + \",\")\n"+
"        return addOptions(c, doptions);\n"+
"    }\n"+
"\n"+
"    if (!hasOptions && (execInfo.refresh || execInfo.options.widget) && !execInfo.script){\n"+
"        execInfo.script = \"#refresh\";\n"+
"    }\n"+
"\n"+
"    var dialog = (execInfo.options.dialog == \"true\");\n"+
"    if ( dialog ){\n"+
"        execInfo.script = execInfo.script || \"#refresh\";\n"+
"        execInfo.refresh = true;\n"+
"    }\n"+
"\n"+
"    if (execInfo.script){\n"+
"        execInfo.script = execInfo.script.trim()\n"+
"        \n"+
"        var match = pd_controls.command.match(/display\\((\\w*),/)\n"+
"        if (match){\n"+
"            var entity = match[1]\n"+
"            console.log(\"Inject self with entity\", entity)\n"+
"            execInfo.script = \"from pixiedust.utils.shellAccess import ShellAccess\\n\"+\n"+
"                \"self=ShellAccess['\" + entity + \"']\\n\" +\n"+
"                resolveScriptMacros( getParentScript(element) ) + '\\n' +\n"+
"                resolveScriptMacros(execInfo.script);\n"+
"            \n"+
"            if ( ( (!dialog && !execInfo.targetDivId) || execInfo.refresh || execInfo.entity) && !execInfo.norefresh && $(element).children(\"target[pd_target]\").length == 0){\n"+
"                \n"+
"                execInfo.script += \"\\n\" + applyEntity(pd_controls.command, execInfo.entity, execInfo.options)\n"+
"            }else{\n"+
"                \n"+
"                execInfo.targetDivId=execInfo.targetDivId || \"dummy\";\n"+
"            }\n"+
"        }else{\n"+
"            console.log(\"Unable to extract entity variable from command\", pd_controls.command);\n"+
"        }\n"+
"    }\n"+
"\n"+
"    if (!hasOptions && !execInfo.targetDivId && !execInfo.script){\n"+
"        return element.hasAttribute(\"pixiedust\")?null:readExecInfo(pd_controls, element.parentElement);\n"+
"    }\n"+
"\n"+
"    if (!execInfo.script){\n"+
"        execInfo.script = applyEntity(pd_controls.command, execInfo.entity, execInfo.options);\n"+
"    }\n"+
"\n"+
"    \n"+
"    execInfo.nostoreMedatadata = true;\n"+
"\n"+
"    \n"+
"    if ( pixiedust.dialogRoot ){\n"+
"        execInfo.targetDivId = execInfo.targetDivId || pixiedust.dialogRoot;\n"+
"    }\n"+
"\n"+
"    execInfo.execute = function(){\n"+
"        \n"+
"        if (!preRun(element)){\n"+
"            return;\n"+
"        }\n"+
"        if ( this.options.dialog == 'true' ){\n"+
"            pixiedust.executeInDialog(pd_controls, this);\n"+
"        }else{\n"+
"            pixiedust.executeDisplay(pd_controls, this);\n"+
"        }\n"+
"    }\n"+
"\n"+
"    console.log(\"execution info: \", execInfo);\n"+
"    return execInfo;\n"+
"}\n"+
"\n"+
"function runElement(element){\n"+
"    var pd_controls = element.getAttribute(\"pixiedust\");\n"+
"    if (!pd_controls){\n"+
"        $(element).parents(\"[pixiedust]\").each(function(){\n"+
"            pd_controls = pd_controls || this.getAttribute(\"pixiedust\");\n"+
"        });\n"+
"    }\n"+
"    var execQueue = [];\n"+
"    if (pd_controls){\n"+
"        pd_controls = JSON.parse(pd_controls);\n"+
"        \n"+
"        execQueue.push( readExecInfo(pd_controls, element) );\n"+
"\n"+
"        \n"+
"        $(element).children(\"target[pd_target]\").each(function(){\n"+
"            execQueue.push( readExecInfo(pd_controls, this))\n"+
"        });\n"+
"    }\n"+
"    return execQueue;\n"+
"}\n"+
"\n"+
"function filterNonTargetElements(element){\n"+
"    if (element && element.tagName == \"I\"){\n"+
"        return filterNonTargetElements(element.parentElement);\n"+
"    }\n"+
"    return element;\n"+
"}\n"+
"\n"+
"\n"+
"$(document).on( \"click\", \"[pixiedust]\", function(event){\n"+
"    execQueue = runElement(filterNonTargetElements(event.target));\n"+
"    \n"+
"    $.each( execQueue, function(index, value){\n"+
"        if (value){\n"+
"            event.stopImmediatePropagation();\n"+
"            value.execute();\n"+
"        }\n"+
"    });\n"+
"});\n"+
"\n"+
"$(document).on( \"DOMNodeInserted\", \"[pd_widget]\", function(event){\n"+
"    event.stopImmediatePropagation();\n"+
"    execQueue = runElement(filterNonTargetElements(event.target));\n"+
"    \n"+
"    $.each( execQueue, function(index, value){\n"+
"        if (value){\n"+
"            value.targetDivId = $(event.target).uniqueId().attr('id');\n"+
"            $(event.target).removeAttr(\"pd_widget\");\n"+
"            value.execute();\n"+
"        }\n"+
"    });\n"+
"});\n"+
"\n"+
"\n"+
"$(document).on(\"pd_event\", function(event, eventInfo){\n"+
"    targetDivId = eventInfo.targetDivId;\n"+
"    if (targetDivId){\n"+
"        eventHandlers = $(\"pd_event_handler\").filter(function(){\n"+
"            if (this.getAttribute(\"pd_target\") == targetDivId){\n"+
"                return true;\n"+
"            }\n"+
"            \n"+
"            return $(this).parents(\"[pd_target]\").filter(function(){\n"+
"                return this.getAttribute(\"pd_target\") == targetDivId;\n"+
"            }).length > 0;\n"+
"        });\n"+
"        eventHandlers.each(function(){\n"+
"            execQueue = runElement(this);\n"+
"            $.each( execQueue, function(index, value){\n"+
"                if (value){\n"+
"                    \n"+
"                    if (value.script){\n"+
"                        value.script = \"true=True\\nfalse=False\\neventInfo=\"+JSON.stringify(eventInfo) + \"\\n\" + value.script;\n"+
"                    }\n"+
"                    value.execute();\n"+
"                }\n"+
"            });\n"+
"        });\n"+
"    }else{\n"+
"        console.log(\"Warning: got a pd_event with no targetDivId\", eventInfo);\n"+
"    }\n"+
"});";
    try{
        g.appendChild(document.createTextNode(code));
    }catch(e){
        g.text = code;
    }
    s.parentNode.insertBefore(g,s);
}
2017-06-02 10:27:49,367 - pixiedust.display - DEBUG - Creating a new display handler with options {'nostore_bokeh': 'false', 'showLegend': 'true', 'cell_id': 'E5567636FCD6456F8FCA891793706C98', 'stacked': 'false', 'title': 'Simple Bar Chart', 'org_params': 'nostore_pixiedust', 'staticFigure': 'false', 'aggregation': 'SUM', 'nostore_cw': '1098', 'clusterby': 'year', 'rowCount': '100', 'handlerId': 'barChart', 'valueFields': 'unique_customers', 'rendererId': 'bokeh', 'charttype': 'grouped', 'keyFields': 'zone', 'nostore_pixiedust': 'true', 'showchrome': 'true'}: <pixiedust.display.chart.ChartDisplayMeta object at 0x117145b90>
2017-06-02 10:27:49,373 - pixiedust.display.chart.renderers - DEBUG - Found renderer: bokeh - barChart
2017-06-02 10:27:49,802 - pixiedust.display - DEBUG - Creating a new display handler with options {'nostore_bokeh': 'false', 'showLegend': 'true', 'cell_id': 'E5567636FCD6456F8FCA891793706C98', 'stacked': 'false', 'title': 'Simple Bar Chart', 'org_params': 'nostore_pixiedust', 'staticFigure': 'false', 'prefix': '505326c4', 'aggregation': 'SUM', 'nostore_cw': '1098', 'clusterby': 'year', 'rowCount': '100', 'handlerId': 'barChart', 'valueFields': 'unique_customers', 'rendererId': 'bokeh', 'charttype': 'grouped', 'keyFields': 'zone', 'nostore_pixiedust': 'true'}: <pixiedust.display.chart.ChartDisplayMeta object at 0x117145b90>
2017-06-02 10:27:49,805 - pixiedust.display.chart.renderers - DEBUG - Found renderer: bokeh - barChart
2017-06-02 10:27:49,806 - pixiedust.display.chart.renderers.baseChartDisplay - DEBUG - No Cache Entry found for E5567636FCD6456F8FCA891793706C98
2017-06-02 10:27:52,847 - pixiedust.display.display.Display - DEBUG - chartOptions [{'metadata': {'default': 100, 'max': 100, 'type': 'slider', 'min': 50}, 'name': 'chartsize', 'description': 'Chart Size'}, {'validate': <function <lambda> at 0x117515d70>, 'metadata': {'default': '', 'values': ['None', u'year'], 'type': 'dropdown'}, 'name': 'clusterby', 'refresh': True, 'description': 'Cluster By'}, {'metadata': {'default': 'false', 'type': 'checkbox'}, 'name': 'timeseries', 'description': 'Time Series'}, {'metadata': {'default': 'grouped', 'values': ['grouped', 'stacked', 'subplots'], 'type': 'dropdown'}, 'name': 'charttype', 'description': 'Type'}, {'metadata': {'default': 'true', 'type': 'checkbox'}, 'name': 'legend', 'description': 'Show legend'}]
2017-06-02 10:27:52,847 - pixiedust.display.display.Display - DEBUG - values: ['year']
2017-06-02 10:27:52,847 - pixiedust.display.display.Display - DEBUG - Calling with year
2017-06-02 10:27:52,847 - pixiedust.utils.template - DEBUG - Template already qualified pixiedust.display.chart.renderers.baseChartDisplay:baseChartOptionsDialogBody.html
2017-06-02 10:28:01,880 - pixiedust.utils.scalaBridge.PixiedustScalaMagics - DEBUG - Calling scala compiler with command: /Users/mbrobergus.ibm.com/pixiedust/bin/scala/scala-2.11.8/bin/scalac -classpath /Users/mbrobergus.ibm.com/pixiedust/data/libs/graphframes-0.1.0-spark1.6.jar:/Users/mbrobergus.ibm.com/pixiedust/data/libs/pixiedust.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/conf/:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/activation-1.1.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/antlr-2.7.7.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/antlr-runtime-3.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/antlr4-runtime-4.5.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/aopalliance-1.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/aopalliance-repackaged-2.4.0-b34.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/apache-log4j-extras-1.2.17.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/apacheds-i18n-2.0.0-M15.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/apacheds-kerberos-codec-2.0.0-M15.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/api-asn1-api-1.0.0-M20.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/api-util-1.0.0-M20.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/arpack_combined_all-0.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/avro-1.7.7.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/avro-ipc-1.7.7.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/avro-mapred-1.7.7-hadoop2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/base64-2.3.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/bcprov-jdk15on-1.51.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/bonecp-0.8.0.RELEASE.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/breeze-macros_2.11-0.11.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/breeze_2.11-0.11.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/calcite-avatica-1.2.0-incubating.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/calcite-core-1.2.0-incubating.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/calcite-linq4j-1.2.0-incubating.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/chill-java-0.8.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/chill_2.11-0.8.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-beanutils-1.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-beanutils-core-1.8.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-cli-1.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-codec-1.10.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-collections-3.2.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-compiler-2.7.6.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-compress-1.4.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-configuration-1.6.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-dbcp-1.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-digester-1.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-httpclient-3.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-io-2.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-lang-2.6.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-lang3-3.3.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-logging-1.1.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-math3-3.4.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-net-2.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/commons-pool-1.5.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/compress-lzf-1.0.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/core-1.1.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/curator-client-2.6.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/curator-framework-2.6.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/curator-recipes-2.6.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/datanucleus-api-jdo-3.2.6.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/datanucleus-core-3.2.10.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/datanucleus-rdbms-3.2.9.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/derby-10.12.1.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/eigenbase-properties-1.1.5.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/gson-2.2.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/guava-14.0.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/guice-3.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/guice-servlet-3.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-annotations-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-auth-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-client-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-common-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-hdfs-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-mapreduce-client-app-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-mapreduce-client-common-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-mapreduce-client-core-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-mapreduce-client-jobclient-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-mapreduce-client-shuffle-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-yarn-api-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-yarn-client-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-yarn-common-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-yarn-server-common-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hadoop-yarn-server-web-proxy-2.7.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hive-beeline-1.2.1.spark2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hive-cli-1.2.1.spark2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hive-exec-1.2.1.spark2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hive-jdbc-1.2.1.spark2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hive-metastore-1.2.1.spark2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hk2-api-2.4.0-b34.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hk2-locator-2.4.0-b34.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/hk2-utils-2.4.0-b34.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/htrace-core-3.1.0-incubating.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/httpclient-4.5.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/httpcore-4.4.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/ivy-2.4.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-annotations-2.6.5.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-core-2.6.5.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-core-asl-1.9.13.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-databind-2.6.5.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-jaxrs-1.9.13.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-mapper-asl-1.9.13.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-module-paranamer-2.6.5.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-module-scala_2.11-2.6.5.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jackson-xc-1.9.13.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/janino-2.7.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/java-xmlbuilder-1.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/JavaEWAH-0.3.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/javassist-3.18.1-GA.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/javax.annotation-api-1.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/javax.inject-1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/javax.inject-2.4.0-b34.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/javax.servlet-api-3.1.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/javax.ws.rs-api-2.0.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/javolution-5.5.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jaxb-api-2.2.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jcl-over-slf4j-1.7.16.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jdo-api-3.0.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jersey-client-2.22.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jersey-common-2.22.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jersey-container-servlet-2.22.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jersey-container-servlet-core-2.22.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jersey-guava-2.22.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jersey-media-jaxb-2.22.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jersey-server-2.22.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jets3t-0.9.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jetty-6.1.26.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jetty-util-6.1.26.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jline-2.12.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/joda-time-2.9.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jodd-core-3.5.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jpam-1.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/json-20090211.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/json4s-ast_2.11-3.2.11.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/json4s-core_2.11-3.2.11.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/json4s-jackson_2.11-3.2.11.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jsp-api-2.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jsr305-1.3.9.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jta-1.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jtransforms-2.4.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/jul-to-slf4j-1.7.16.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/kryo-shaded-3.0.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/leveldbjni-all-1.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/libfb303-0.9.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/libthrift-0.9.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/log4j-1.2.17.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/lz4-1.3.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/mail-1.4.7.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/mesos-0.21.1-shaded-protobuf.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/metrics-core-3.1.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/metrics-graphite-3.1.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/metrics-json-3.1.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/metrics-jvm-3.1.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/minlog-1.3.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/mx4j-3.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/netty-3.8.0.Final.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/netty-all-4.0.29.Final.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/objenesis-2.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/opencsv-2.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/oro-2.0.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/osgi-resource-locator-1.0.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/paranamer-2.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-column-1.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-common-1.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-encoding-1.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-format-2.3.0-incubating.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-generator-1.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-hadoop-1.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-hadoop-bundle-1.6.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/parquet-jackson-1.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/pmml-model-1.2.15.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/pmml-schema-1.2.15.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/protobuf-java-2.5.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/py4j-0.10.3.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/pyrolite-4.13.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/RoaringBitmap-0.5.11.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/scala-compiler-2.11.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/scala-library-2.11.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/scala-parser-combinators_2.11-1.0.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/scala-reflect-2.11.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/scala-xml_2.11-1.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/scalap-2.11.8.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/slf4j-api-1.7.16.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/slf4j-log4j12-1.7.16.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/snappy-0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/snappy-java-1.1.2.6.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-catalyst_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-core_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-graphx_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-hive-thriftserver_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-hive_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-launcher_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-mllib-local_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-mllib_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-network-common_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-network-shuffle_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-repl_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-sketch_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-sql_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-streaming_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-tags_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-unsafe_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spark-yarn_2.11-2.0.2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spire-macros_2.11-0.7.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/spire_2.11-0.7.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/ST4-4.0.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/stax-api-1.0-2.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/stax-api-1.0.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/stream-2.7.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/stringtemplate-3.2.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/super-csv-2.2.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/univocity-parsers-2.1.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/validation-api-1.1.0.Final.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/xbean-asm5-shaded-4.4.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/xercesImpl-2.9.1.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/xmlenc-0.52.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/xz-1.0.jar:/Users/mbrobergus.ibm.com/pixiedust/bin/spark/spark-2.0.2-bin-hadoop2.7/jars/zookeeper-3.4.6.jar pixiedustRunner.scala
2017-06-02 10:28:05,138 - pixiedust.utils.javaBridge - DEBUG - Calling callMethod: methodName: init
2017-06-02 10:28:05,142 - pixiedust.utils.javaBridge - DEBUG - Found method with Name init
2017-06-02 10:28:05,144 - pixiedust.utils.javaBridge - DEBUG - Calling callMethod: methodName: setD1
2017-06-02 10:28:05,151 - pixiedust.utils.javaBridge - DEBUG - Found method with Name setD1
2017-06-02 10:28:05,152 - pixiedust.utils.javaBridge - DEBUG - Calling callMethod: methodName: runCell
2017-06-02 10:28:05,154 - pixiedust.utils.javaBridge - DEBUG - Found method with Name runCell
2017-06-02 10:28:35,808 - pixiedust.display - DEBUG - Creating a new display handler with options {}: <pixiedust.display.display.CellHandshakeMeta object at 0x117444250>
2017-06-02 10:28:35,920 - pixiedust.display.display.Display - DEBUG - pixiedust code: if (typeof pixiedust == "undefined"){
    var s=document.getElementsByTagName('script')[0];
    var g=document.createElement( 'script'  );
    g.type= 'text/javascript';
    g.defer=false; 
    g.async=false;
    var code = "var pixiedust = (function(){\n"+
"    return {\n"+
"        \n"+
"        executeDisplay:function(pd_controls, user_controls){\n"+
"            pd_controls = pd_controls || {};\n"+
"            user_controls = user_controls || {\"options\":{}};\n"+
"            var options = $.extend({}, pd_controls.options || {}, user_controls.options || {} );\n"+
"            function onDisplayDone(){\n"+
"                if (user_controls.onDisplayDone){\n"+
"                    user_controls.onDisplayDone();\n"+
"                }\n"+
"            }\n"+
"            var pd_prefix = pd_controls.prefix;\n"+
"            var $targetDivId = user_controls.targetDivId;\n"+
"            !function() {\n"+
"    function getTargetNode(){\n"+
"        return $('#' + ($targetDivId || (\"wrapperHTML\"+ pd_prefix)));\n"+
"    }\n"+
"    var cellId = options.cell_id || \"\";\n"+
"    var curCell=IPython.notebook.get_cells().filter(function(cell){\n"+
"        return cell.cell_id==cellId;\n"+
"    });\n"+
"    curCell=curCell.length>0?curCell[0]:null;\n"+
"    console.log(\"curCell\",curCell);\n"+
"    var startWallToWall;\n"+
"        var callbacks = {\n"+
"        shell : {\n"+
"            reply : function(){\n"+
"                if ( !callbacks.response ){\n"+
"                    getTargetNode().html(\"\")\n"+
"                    if (user_controls.onDisplayDone){\n"+
"                        user_controls.onDisplayDone();\n"+
"                    }\n"+
"                }\n"+
"            },\n"+
"            payload : {\n"+
"                set_next_input : function(payload){\n"+
"                    if (curCell){\n"+
"                        curCell._handle_set_next_input(payload);\n"+
"                    }\n"+
"                }\n"+
"            }\n"+
"        },\n"+
"        iopub:{\n"+
"            output:function(msg){\n"+
"                callbacks.response = true;\n"+
"                console.log(\"msg\", msg);\n"+
"                if (cellId == \"\"){\n"+
"                    if (curCell){\n"+
"                        curCell.output_area.handle_output.apply(curCell.output_area, arguments);\n"+
"                        curCell.output_area.outputs=[];\n"+
"                    }else{\n"+
"                        console.log(\"Could not find current cell\");\n"+
"                    }\n"+
"                    return;\n"+
"                }\n"+
"                var msg_type=msg.header.msg_type;\n"+
"                var content = msg.content;\n"+
"                if(msg_type===\"stream\"){\n"+
"                    if (user_controls.onSuccess){\n"+
"                        user_controls.onSuccess(content.text);\n"+
"                    }else{\n"+
"                        getTargetNode().html(content.text);\n"+
"                    }\n"+
"                }else if (msg_type===\"display_data\" || msg_type===\"execute_result\"){\n"+
"                    var html=null;\n"+
"                    if (!!content.data[\"text/html\"]){\n"+
"                        html=content.data[\"text/html\"];\n"+
"                    }else if (!!content.data[\"image/png\"]){\n"+
"                        html=html||\"\";\n"+
"                        html+=\"<img src='data:image/png;base64,\" +content.data[\"image/png\"]+\"'></img>\";\n"+
"                    }\n"+
"                                                    \n"+
"                    if (!!content.data[\"application/javascript\"]){\n"+
"                        try {\n"+
"                            eval(content.data[\"application/javascript\"]);\n"+
"                        } catch(err) {\n"+
"                            curCell.output_area.handle_output.apply(curCell.output_area, arguments);\n"+
"                        }                        \n"+
"                        return;\n"+
"                    }\n"+
"                    \n"+
"                    if (html){\n"+
"                        try{\n"+
"                            if (user_controls.onSuccess){\n"+
"                                user_controls.onSuccess(html);\n"+
"                            }else{\n"+
"                                getTargetNode().html(html);\n"+
"                            }\n"+
"                        }catch(e){\n"+
"                            console.log(\"Invalid html output\", e, html);\n"+
"                            getTargetNode().html( \"Invalid html output: \" + e.message + \"<pre>\" \n"+
"                                + html.replace(/>/g,'&gt;').replace(/</g,'&lt;').replace(/\"/g,'&quot;') + \"<pre>\");\n"+
"                        }\n"+
"\n"+
"                        if(curCell&&curCell.output_area&&curCell.output_area.outputs){\n"+
"                            setTimeout(function(){\n"+
"                                var data = JSON.parse(JSON.stringify(content.data));\n"+
"                                if(!!data[\"text/html\"])data[\"text/html\"]=html;\n"+
"                                function savedData(data){\n"+
"                                    \n"+
"                                    var markup='<style type=\"text/css\">.pd_warning{display:none;}</style>';\n"+
"                                    markup+='<div class=\"pd_warning\"><em>Hey, there\\'s something awesome here! To see it, open this notebook outside GitHub, in a viewer like Jupyter</em></div>';\n"+
"                                    nodes = $.parseHTML(data[\"text/html\"], null, true);\n"+
"                                    var s = $(nodes).wrap(\"<div>\").parent().find(\".pd_save\").not(\".pd_save .pd_save\")\n"+
"                                    s.each(function(){\n"+
"                                        var found = false;\n"+
"                                        if ( $(this).attr(\"id\") ){\n"+
"                                            var n = $(\"#\" + $(this).attr(\"id\"));\n"+
"                                            if (n.length>0){\n"+
"                                                found=true;\n"+
"                                                n.each(function(){\n"+
"                                                    $(this).addClass(\"is-viewer-good\");\n"+
"                                                });\n"+
"                                                markup+=n.wrap(\"<div>\").parent().html();\n"+
"                                            }\n"+
"                                        }else{\n"+
"                                            $(this).addClass(\"is-viewer-good\");\n"+
"                                        }\n"+
"                                        if (!found){\n"+
"                                            markup+=$(this).parent().html();\n"+
"                                        }\n"+
"                                    });\n"+
"                                    data[\"text/html\"] = markup;\n"+
"                                    return data;\n"+
"                                }\n"+
"                                curCell.output_area.outputs.push({\"data\": savedData(data),\"metadata\":content.metadata,\"output_type\":msg_type});\n"+
"                            },2000);\n"+
"                        }\n"+
"                    }\n"+
"                }else if (msg_type === \"error\") {\n"+
"                    require(['base/js/utils'], function(utils) {\n"+
"                        var tb = content.traceback;\n"+
"                        console.log(\"tb\",tb);\n"+
"                        if (tb && tb.length>0){\n"+
"                            var data = tb.reduce(function(res, frame){return res+frame+'\\\\n';},\"\");\n"+
"                            console.log(\"data\",data);\n"+
"                            data = utils.fixConsole(data);\n"+
"                            data = utils.fixCarriageReturn(data);\n"+
"                            data = utils.autoLinkUrls(data);\n"+
"                            if (user_controls.onError){\n"+
"                                user_controls.onError(data);\n"+
"                            }else{\n"+
"                                getTargetNode().html(\"<pre>\" + data +\"</pre>\");\n"+
"                            }\n"+
"                        }\n"+
"                    });\n"+
"                }else{\n"+
"                    callbacks.response = false;\n"+
"                }\n"+
"                if (user_controls.onDisplayDone){\n"+
"                    user_controls.onDisplayDone();\n"+
"                }\n"+
"            }\n"+
"        }\n"+
"    }\n"+
"    \n"+
"    if (IPython && IPython.notebook && IPython.notebook.session && IPython.notebook.session.kernel){\n"+
"        var command = user_controls.script || pd_controls.command.replace(\"cellId\",cellId);\n"+
"        if ( !user_controls.script){\n"+
"            function addOptions(options, override=true){\n"+
"                function getStringRep(v) {\n"+
"                    return \"'\" + v + \"'\";\n"+
"                }\n"+
"                for (var key in (options||{})){\n"+
"                    var value = options[key];\n"+
"                    var hasValue = value != null && typeof value !== 'undefined' && value !== '';\n"+
"                    var replaceValue = hasValue ? (key+\"=\" + getStringRep(value) ) : \"\";\n"+
"                    var pattern = (hasValue?\"\":\",\")+\"\\\\s*\" + key + \"\\\\s*=\\\\s*'(\\\\\\\\'|[^'])*'\";\n"+
"                    var rpattern=new RegExp(pattern);\n"+
"                    var n = command.search(rpattern);\n"+
"                    if ( n >= 0 ){\n"+
"                        if (override){\n"+
"                            command = command.replace(rpattern, replaceValue);\n"+
"                        }\n"+
"                    }else if (hasValue){\n"+
"                        var n = command.lastIndexOf(\")\");\n"+
"                        command = [command.slice(0, n), (command[n-1]==\"(\"? \"\":\",\") + replaceValue, command.slice(n)].join('')\n"+
"                    }        \n"+
"                }\n"+
"            }\n"+
"            if(typeof cellMetadata != \"undefined\" && cellMetadata.displayParams){\n"+
"                addOptions(cellMetadata.displayParams);\n"+
"                addOptions({\"showchrome\":\"true\"});\n"+
"            }else if (curCell && curCell._metadata.pixiedust ){\n"+
"                addOptions(curCell._metadata.pixiedust.displayParams || {}, pd_controls.useCellMetadata);\n"+
"            }\n"+
"            addOptions(user_controls.options||{});\n"+
"            var pattern = \"\\\\w*\\\\s*=\\\\s*'(\\\\\\\\'|[^'])*'\";\n"+
"            var rpattern=new RegExp(pattern,\"g\");\n"+
"            var n = command.match(rpattern);\n"+
"            \n"+
"            var org_params = {}\n"+
"            for (var i=0; i<n.length;i++){\n"+
"                var parts = n[i].split(\"=\")\n"+
"                if (parts[0].trim() == \"org_params\"){\n"+
"                    var value = parts[1].trim()\n"+
"                    var values = value.substring(1,value.length-1).split(\",\");\n"+
"                    for (var p in values){\n"+
"                        org_params[values[p].trim()] = true;\n"+
"                    }\n"+
"                    break;\n"+
"                }\n"+
"            }\n"+
"            var displayParams={}\n"+
"            for (var i = 0; i < n.length; i++){\n"+
"                var parts=n[i].split(\"=\");\n"+
"                var key = parts[0].trim();\n"+
"                var value = parts[1].trim()\n"+
"                if (!key.startsWith(\"nostore_\") && key != \"showchrome\" && key != \"prefix\" && key != \"cell_id\" && key != \"org_params\" && !!!org_params[key]){\n"+
"                    displayParams[key] = value.substring(1,value.length-1);\n"+
"                }\n"+
"            }\n"+
"\n"+
"            \n"+
"        }\n"+
"        if(curCell&&curCell.output_area){\n"+
"            if ( !user_controls.nostoreMedatadata ){\n"+
"                curCell._metadata.pixiedust = curCell._metadata.pixiedust || {}\n"+
"                curCell._metadata.pixiedust.displayParams=displayParams\n"+
"                curCell.output_area.outputs=[];\n"+
"                var old_msg_id = curCell.last_msg_id;\n"+
"                if (old_msg_id) {\n"+
"                    curCell.kernel.clear_callbacks_for_msg(old_msg_id);\n"+
"                }\n"+
"            }\n"+
"        }else{\n"+
"            console.log(\"couldn't find the cell\");\n"+
"        }\n"+
"        $('#wrapperJS' + pd_prefix).html(\"\")\n"+
"        if (!getTargetNode().hasClass( \"no_loading_msg\" )){\n"+
"            getTargetNode().html(\n"+
"                '<div style=\"width:100px;height:60px;left:47%;position:relative\">'+\n"+
"                    '<i class=\"fa fa-circle-o-notch fa-spin\" style=\"font-size:48px\"></i>'+\n"+
"                '</div>'+\n"+
"                '<div style=\"text-align:center\">' +\n"+
"                    (getTargetNode().attr(\"pd_loading_msg\") || \"Loading your data. Please wait...\") +\n"+
"                '</div>'\n"+
"            );\n"+
"        }\n"+
"        console.log(\"Running command2\",command);\n"+
"        IPython.notebook.session.kernel.execute(command, callbacks, {silent:true,store_history:false,stop_on_error:true});\n"+
"    }\n"+
"}()\n"+
"        },\n"+
"        executeInDialog:function(pd_controls, user_controls){\n"+
"            pd_controls = pd_controls || {};\n"+
"            user_controls = user_controls || {\"options\":{}};\n"+
"            var displayOptions = $.extend({}, pd_controls.options || {}, user_controls.options || {} );\n"+
"            var global={};\n"+
"            require(['base/js/dialog'],function(dialog){\n"+
"                var modal = dialog.modal;\n"+
"                var attr_pd_ctrl = JSON.stringify(pd_controls).trim()\n"+
"                    .replace(/&/g, '&amp;')\n"+
"                    .replace(/'/g, '&apos;')\n"+
"                    .replace(/\"/g, '&quot;')\n"+
"                    .replace(/</g, '&lt;')\n"+
"                    .replace(/>/g, '&gt;');\n"+
"                var dialogRoot = \"dialog\" + pd_controls.prefix + \"root\";\n"+
"                var options = {\n"+
"                    title: \"Pixiedust: \" + (displayOptions.title || \"Dialog\"),\n"+
"                    body: '<div id=\"' + dialogRoot + '\" pixiedust=\"' + attr_pd_ctrl + '\" class=\"pixiedust\"></div>',\n"+
"                    sanitize:false,\n"+
"                    notebook: IPython.notebook,\n"+
"                    keyboard_manager: IPython.notebook.keyboard_manager,\n"+
"                    maximize_modal: (displayOptions.maximize === \"true\"),\n"+
"                    buttons: {\n"+
"                        OK: {\n"+
"                            class : \"btn-primary btn-ok\",\n"+
"                            click: function() {\n"+
"                                var dlg = $(\"#\" + dialogRoot + \" > pd_dialog\");\n"+
"                                try{\n"+
"                                    return new Function('global', 'modal_obj', dlg.find(\"> pd_ok\").text().trim())(global, modal_obj);\n"+
"                                }catch(e){\n"+
"                                    console.error(e);\n"+
"                                    return false;\n"+
"                                }\n"+
"                            }\n"+
"                        },\n"+
"                        Cancel: {\n"+
"                            class : \"btn-cancel\",\n"+
"                            click: function(){\n"+
"                            }\n"+
"                        }\n"+
"                    }\n"+
"                };\n"+
"\n"+
"                function resizeDialog() {\n"+
"                    global.modalBodyStyle = $('.pixiedust .modal-body').attr('style');\n"+
"                    global.modalFooterStyle = $('.pixiedust .modal-footer').attr('style');\n"+
"                    $('.pixiedust .modal-body').attr('style', global.modalBodyStyle ? global.modalBodyStyle + ';padding:5px 20px !important;' : 'padding:5px 20px !important;');\n"+
"                    $('.pixiedust .modal-footer').attr('style', 'display:none !important;');\n"+
"                };\n"+
"\n"+
"                function resetDialog() {\n"+
"                    if (global.modalBodyStyle) {\n"+
"                        $('.pixiedust .modal-body').attr('style', global.modalBodyStyle);\n"+
"                    } else {\n"+
"                        $('.pixiedust .modal-body').removeAttr('style');\n"+
"                    }\n"+
"                    if (global.modalFooterStyle) {\n"+
"                        $('.pixiedust .modal-footer').attr('style', global.modalFooterStyle);\n"+
"                    } else {\n"+
"                        $('.pixiedust .modal-footer').removeAttr('style');\n"+
"                    }\n"+
"                };\n"+
"\n"+
"                var modal_obj = modal(options);\n"+
"                modal_obj.addClass('pixiedust pixiedust-app');\n"+
"                if (options.maximize_modal) {\n"+
"                    modal_obj.addClass('pixiedust pixiedust-app pixiedust-maximize');\n"+
"                }\n"+
"                modal_obj.on('shown.bs.modal', function(){\n"+
"                    resizeDialog();\n"+
"                    var isFF = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n"+
"                    if( isFF && options.keyboard_manager){\n"+
"                        \n"+
"                        var KeyboardManager = require('notebook/js/keyboardmanager').KeyboardManager;\n"+
"                        global.KMEnableProto = KeyboardManager.prototype.enable;\n"+
"                        KeyboardManager.prototype.enable = function () {\n"+
"                            this.enabled = false;\n"+
"                        };\n"+
"                    }\n"+
"                    IPython.keyboard_manager.register_events(modal_obj);\n"+
"                    user_controls.options.targetDivId = user_controls.targetDivId = dialogRoot;\n"+
"                    if ( user_controls.options.dialog == 'true'){\n"+
"                        user_controls.onDisplayDone = function(){\n"+
"                            var dlg = $(\"#\" + dialogRoot + \" > pd_dialog\")\n"+
"                            try{\n"+
"                                new Function('global', 'modal_obj', dlg.find(\"> pd_onload\").text().trim())(global, modal_obj);\n"+
"                            }catch(e){\n"+
"                                console.error(e);\n"+
"                            }\n"+
"                        }\n"+
"                    }\n"+
"                    pixiedust.dialogRoot = dialogRoot;\n"+
"                    pixiedust.executeDisplay(pd_controls, user_controls);\n"+
"                });\n"+
"                modal_obj.on(\"hidden.bs.modal\", function () {\n"+
"                    resetDialog();\n"+
"                    if ( global.KMEnableProto ){\n"+
"                        var KeyboardManager = require('notebook/js/keyboardmanager').KeyboardManager;\n"+
"                        KeyboardManager.prototype.enable = global.KMEnableProto;\n"+
"                        delete global.KMEnableProto;\n"+
"                    }\n"+
"                    pixiedust.dialogRoot = null;\n"+
"                });\n"+
"            })\n"+
"        }\n"+
"    }\n"+
"})();\n"+
"\n"+
"function resolveScriptMacros(script){\n"+
"    script = script && script.replace(/\\$val\\(\\\"?(\\w*)\\\"?\\)/g, function(a,b){\n"+
"        var v = $(\"#\" + b ).val();\n"+
"        if (!v && window[b] && typeof window[b] === \"function\"){\n"+
"            v = window[b]();\n"+
"        }\n"+
"        if (!v && pixiedust[b] && typeof pixiedust[b] === \"function\"){\n"+
"            v = pixiedust[b]();\n"+
"        }\n"+
"        if (!v){\n"+
"            console.log(\"Warning: Unable to resolve value for element \", b);\n"+
"            return a;\n"+
"        }\n"+
"        return v.split('\"').join('&quot;').split('\\n').join('\\\\n');\n"+
"    });\n"+
"    return script;\n"+
"}\n"+
"\n"+
"function getParentScript(element){\n"+
"    var scripts = [];\n"+
"    \n"+
"    $(element).parents(\"[pd_script]\").each(function(){\n"+
"        scripts.unshift(this.getAttribute(\"pd_script\"));\n"+
"    });\n"+
"\n"+
"    \n"+
"    var script = \"\";\n"+
"    $.each( scripts, function(index, value){\n"+
"        if (value){\n"+
"            script += \"\\n\" + value;\n"+
"        }\n"+
"    });\n"+
"    return script;\n"+
"}\n"+
"\n"+
"function preRun(element){\n"+
"    var preRunCode = null;\n"+
"    $(element).find(\"> pd_script\").each(function(){\n"+
"        var type = this.getAttribute(\"type\");\n"+
"        if (type==\"preRun\"){\n"+
"            preRunCode = $(this).text();\n"+
"        }\n"+
"    });\n"+
"    if (!preRunCode ){\n"+
"        return true;\n"+
"    }\n"+
"    return new Function(preRunCode.trim())();\n"+
"}\n"+
"\n"+
"function addOptions(command, options, override=true){\n"+
"    function getStringRep(v) {\n"+
"        return \"'\" + v + \"'\";\n"+
"    }\n"+
"    for (var key in (options||{})){\n"+
"        var value = options[key];\n"+
"        var hasValue = value != null && typeof value !== 'undefined' && value !== '';\n"+
"        var replaceValue = hasValue ? (key+\"=\" + getStringRep(value) ) : \"\";\n"+
"        var pattern = (hasValue?\"\":\",\")+\"\\\\s*\" + key + \"\\\\s*=\\\\s*'(\\\\\\\\'|[^'])*'\";\n"+
"        var rpattern=new RegExp(pattern);\n"+
"        var n = command.search(rpattern);\n"+
"        if ( n >= 0 ){\n"+
"            if (override){\n"+
"                command = command.replace(rpattern, replaceValue);\n"+
"            }\n"+
"        }else if (hasValue){\n"+
"            var n = command.lastIndexOf(\")\");\n"+
"            command = [command.slice(0, n), (command[n-1]==\"(\"? \"\":\",\") + replaceValue, command.slice(n)].join('')\n"+
"        }        \n"+
"    }\n"+
"    return command;\n"+
"}\n"+
"\n"+
"function readExecInfo(pd_controls, element){\n"+
"    var execInfo = {}\n"+
"    execInfo.options = {}\n"+
"    var hasOptions = false;\n"+
"    $.each( element.attributes, function(){\n"+
"        if (this.name.startsWith(\"option_\")){\n"+
"            hasOptions = true;\n"+
"            execInfo.options[this.name.replace(\"option_\", \"\")] = this.value || null;\n"+
"        }\n"+
"    });\n"+
"    var pd_options = resolveScriptMacros(element.getAttribute(\"pd_options\"));\n"+
"    if (pd_options){\n"+
"        var parts = pd_options.split(\";\");\n"+
"        $.each( parts, function(){\n"+
"            var index = this.indexOf(\"=\");\n"+
"            if ( index > 1){\n"+
"                hasOptions = true;\n"+
"                execInfo.options[this.substring(0, index)] = this.substring(index+1);\n"+
"            }\n"+
"        });\n"+
"    }\n"+
"    execInfo.options.nostore_figureOnly = true;\n"+
"    execInfo.options.targetDivId = execInfo.targetDivId = element.getAttribute(\"pd_target\");\n"+
"    if (execInfo.options.targetDivId){\n"+
"        execInfo.options.no_margin=true;\n"+
"    }\n"+
"\n"+
"    execInfo.options.widget = element.getAttribute(\"pd_widget\");\n"+
"\n"+
"        var parentStyles = [];\n"+
"    var hiddenBlockStyle = 'visibility: hidden !important; display: block !important;';\n"+
"    var tDiv = $(\"#\" + execInfo.targetDivId);\n"+
"    var tDivParents = tDiv.parents().addBack().filter(':hidden');\n"+
"    tDivParents.each(function() {\n"+
"        var currentStyle = $(this).attr('style');\n"+
"        parentStyles.push(currentStyle);\n"+
"        $(this).attr('style', currentStyle ? currentStyle + ';' + hiddenBlockStyle : hiddenBlockStyle);\n"+
"    });\n"+
"\n"+
"        w = tDiv.width()\n"+
"    if (w) {\n"+
"        execInfo.options.nostore_cw= w;\n"+
"    }\n"+
"    if ($(element).parents(\".modal-dialog\").length > 0 ) {\n"+
"        h = tDiv.height()\n"+
"        if (h) {\n"+
"            execInfo.options.nostore_ch = h-10;\n"+
"        }\n"+
"    }\n"+
"\n"+
"        tDivParents.each(function(i) {\n"+
"        if (parentStyles[i] === undefined) {\n"+
"            $(this).removeAttr('style');\n"+
"        } else {\n"+
"            $(this).attr('style', parentStyles[i]);\n"+
"        }\n"+
"    });\n"+
"\n"+
"    execInfo.script = element.getAttribute(\"pd_script\");\n"+
"    if (!execInfo.script){\n"+
"        $(element).find(\"> pd_script\").each(function(){\n"+
"            var type = this.getAttribute(\"type\");\n"+
"            if (!type || type==\"python\"){\n"+
"                execInfo.script = $(this).text();\n"+
"            }\n"+
"        })\n"+
"    }\n"+
"\n"+
"    execInfo.refresh = element.hasAttribute(\"pd_refresh\");\n"+
"    execInfo.norefresh = element.hasAttribute(\"pd_norefresh\");\n"+
"    execInfo.entity = element.hasAttribute(\"pd_entity\") ? element.getAttribute(\"pd_entity\") || \"pixieapp_entity\" : null;\n"+
"\n"+
"    function applyEntity(c, e, doptions){\n"+
"        if (!e){\n"+
"            return addOptions(c, doptions);\n"+
"        }\n"+
"        c = c.replace(/\\((\\w*),/, \"($1.\" + e + \",\")\n"+
"        return addOptions(c, doptions);\n"+
"    }\n"+
"\n"+
"    if (!hasOptions && (execInfo.refresh || execInfo.options.widget) && !execInfo.script){\n"+
"        execInfo.script = \"#refresh\";\n"+
"    }\n"+
"\n"+
"    var dialog = (execInfo.options.dialog == \"true\");\n"+
"    if ( dialog ){\n"+
"        execInfo.script = execInfo.script || \"#refresh\";\n"+
"        execInfo.refresh = true;\n"+
"    }\n"+
"\n"+
"    if (execInfo.script){\n"+
"        execInfo.script = execInfo.script.trim()\n"+
"        \n"+
"        var match = pd_controls.command.match(/display\\((\\w*),/)\n"+
"        if (match){\n"+
"            var entity = match[1]\n"+
"            console.log(\"Inject self with entity\", entity)\n"+
"            execInfo.script = \"from pixiedust.utils.shellAccess import ShellAccess\\n\"+\n"+
"                \"self=ShellAccess['\" + entity + \"']\\n\" +\n"+
"                resolveScriptMacros( getParentScript(element) ) + '\\n' +\n"+
"                resolveScriptMacros(execInfo.script);\n"+
"            \n"+
"            if ( ( (!dialog && !execInfo.targetDivId) || execInfo.refresh || execInfo.entity) && !execInfo.norefresh && $(element).children(\"target[pd_target]\").length == 0){\n"+
"                \n"+
"                execInfo.script += \"\\n\" + applyEntity(pd_controls.command, execInfo.entity, execInfo.options)\n"+
"            }else{\n"+
"                \n"+
"                execInfo.targetDivId=execInfo.targetDivId || \"dummy\";\n"+
"            }\n"+
"        }else{\n"+
"            console.log(\"Unable to extract entity variable from command\", pd_controls.command);\n"+
"        }\n"+
"    }\n"+
"\n"+
"    if (!hasOptions && !execInfo.targetDivId && !execInfo.script){\n"+
"        return element.hasAttribute(\"pixiedust\")?null:readExecInfo(pd_controls, element.parentElement);\n"+
"    }\n"+
"\n"+
"    if (!execInfo.script){\n"+
"        execInfo.script = applyEntity(pd_controls.command, execInfo.entity, execInfo.options);\n"+
"    }\n"+
"\n"+
"    \n"+
"    execInfo.nostoreMedatadata = true;\n"+
"\n"+
"    \n"+
"    if ( pixiedust.dialogRoot ){\n"+
"        execInfo.targetDivId = execInfo.targetDivId || pixiedust.dialogRoot;\n"+
"    }\n"+
"\n"+
"    execInfo.execute = function(){\n"+
"        \n"+
"        if (!preRun(element)){\n"+
"            return;\n"+
"        }\n"+
"        if ( this.options.dialog == 'true' ){\n"+
"            pixiedust.executeInDialog(pd_controls, this);\n"+
"        }else{\n"+
"            pixiedust.executeDisplay(pd_controls, this);\n"+
"        }\n"+
"    }\n"+
"\n"+
"    console.log(\"execution info: \", execInfo);\n"+
"    return execInfo;\n"+
"}\n"+
"\n"+
"function runElement(element){\n"+
"    var pd_controls = element.getAttribute(\"pixiedust\");\n"+
"    if (!pd_controls){\n"+
"        $(element).parents(\"[pixiedust]\").each(function(){\n"+
"            pd_controls = pd_controls || this.getAttribute(\"pixiedust\");\n"+
"        });\n"+
"    }\n"+
"    var execQueue = [];\n"+
"    if (pd_controls){\n"+
"        pd_controls = JSON.parse(pd_controls);\n"+
"        \n"+
"        execQueue.push( readExecInfo(pd_controls, element) );\n"+
"\n"+
"        \n"+
"        $(element).children(\"target[pd_target]\").each(function(){\n"+
"            execQueue.push( readExecInfo(pd_controls, this))\n"+
"        });\n"+
"    }\n"+
"    return execQueue;\n"+
"}\n"+
"\n"+
"function filterNonTargetElements(element){\n"+
"    if (element && element.tagName == \"I\"){\n"+
"        return filterNonTargetElements(element.parentElement);\n"+
"    }\n"+
"    return element;\n"+
"}\n"+
"\n"+
"\n"+
"$(document).on( \"click\", \"[pixiedust]\", function(event){\n"+
"    execQueue = runElement(filterNonTargetElements(event.target));\n"+
"    \n"+
"    $.each( execQueue, function(index, value){\n"+
"        if (value){\n"+
"            event.stopImmediatePropagation();\n"+
"            value.execute();\n"+
"        }\n"+
"    });\n"+
"});\n"+
"\n"+
"$(document).on( \"DOMNodeInserted\", \"[pd_widget]\", function(event){\n"+
"    event.stopImmediatePropagation();\n"+
"    execQueue = runElement(filterNonTargetElements(event.target));\n"+
"    \n"+
"    $.each( execQueue, function(index, value){\n"+
"        if (value){\n"+
"            value.targetDivId = $(event.target).uniqueId().attr('id');\n"+
"            $(event.target).removeAttr(\"pd_widget\");\n"+
"            value.execute();\n"+
"        }\n"+
"    });\n"+
"});\n"+
"\n"+
"\n"+
"$(document).on(\"pd_event\", function(event, eventInfo){\n"+
"    targetDivId = eventInfo.targetDivId;\n"+
"    if (targetDivId){\n"+
"        eventHandlers = $(\"pd_event_handler\").filter(function(){\n"+
"            if (this.getAttribute(\"pd_target\") == targetDivId){\n"+
"                return true;\n"+
"            }\n"+
"            \n"+
"            return $(this).parents(\"[pd_target]\").filter(function(){\n"+
"                return this.getAttribute(\"pd_target\") == targetDivId;\n"+
"            }).length > 0;\n"+
"        });\n"+
"        eventHandlers.each(function(){\n"+
"            execQueue = runElement(this);\n"+
"            $.each( execQueue, function(index, value){\n"+
"                if (value){\n"+
"                    \n"+
"                    if (value.script){\n"+
"                        value.script = \"true=True\\nfalse=False\\neventInfo=\"+JSON.stringify(eventInfo) + \"\\n\" + value.script;\n"+
"                    }\n"+
"                    value.execute();\n"+
"                }\n"+
"            });\n"+
"        });\n"+
"    }else{\n"+
"        console.log(\"Warning: got a pd_event with no targetDivId\", eventInfo);\n"+
"    }\n"+
"});";
    try{
        g.appendChild(document.createTextNode(code));
    }catch(e){
        g.text = code;
    }
    s.parentNode.insertBefore(g,s);
}
2017-06-02 10:28:36,475 - pixiedust.display - DEBUG - Creating a new display handler with options {'cell_id': '172D650A866A4E3480E3B228CDB116F7', 'org_params': 'nostore_pixiedust', 'nostore_cw': '1098', 'handlerId': 'dataframe', 'nostore_bokeh': 'true', 'nostore_pixiedust': 'true', 'showchrome': 'true'}: <pixiedust.display.table.TableDisplayMeta object at 0x117152790>
2017-06-02 10:28:36,964 - pixiedust.display - DEBUG - Creating a new display handler with options {'cell_id': '172D650A866A4E3480E3B228CDB116F7', 'org_params': 'nostore_pixiedust', 'prefix': '2523b2f1', 'nostore_cw': '1098', 'handlerId': 'dataframe', 'nostore_bokeh': 'true', 'nostore_pixiedust': 'true'}: <pixiedust.display.table.TableDisplayMeta object at 0x117152790>

Environment Info.

The following cells will print out information related to your notebook environment.


In [15]:
%%scala
val __scala_version = util.Properties.versionNumberString



In [16]:
import platform
print('PYTHON VERSON = ' + platform.python_version())
print('SPARK VERSON = ' + sc.version)
print('SCALA VERSON = ' + __scala_version)


PYTHON VERSON = 2.7.13
SPARK VERSON = 2.0.2
SCALA VERSON = 2.11.8

More Info.

For more information about PixieDust check out the following:

PixieDust Documentation: https://pixiedust.github.io/pixiedust/index.html

PixieDust GitHub Repo: https://github.com/ibm-watson-data-lab/pixiedust


In [ ]: